package com.divemotor.ventarepuestosinternet.model;

import java.io.Serializable;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;


@Entity
@Table(name="SIS_MAE_SISTEMA")
public class Sistema implements Serializable {
	
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="COD_ID_SISTEMA")
	private Integer idSistema;
	@Column(length=50,name="DES_NOMBRE")
	private String nombre;
	@ManyToMany(fetch=FetchType.LAZY)
	@JoinTable(name = "SIS_MAE_SISTEMA_PAIS", joinColumns = @JoinColumn(name = "COD_ID_SISTEMA"), inverseJoinColumns = @JoinColumn(name = "COD_ID_PAIS"))
	private List<Pais> listaPaises;
	
	public Sistema() {

	}
	
	public Sistema(Integer idSistema) {
		this.idSistema = idSistema;
	}
	
	public Integer getIdSistema() {
		return idSistema;
	}

	public void setIdSistema(Integer idSistema) {
		this.idSistema = idSistema;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	
	public List<Pais> getListaPaises() {
		return listaPaises;
	}
	
	public void setListaPaises(List<Pais> listaPaises) {
		this.listaPaises = listaPaises;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((idSistema == null) ? 0 : idSistema.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj){
			return true;
		}
		if (obj == null){
			return false;
		}
		if (getClass() != obj.getClass()){
			return false;
		}
		Sistema other = (Sistema) obj;
		if (idSistema == null) {
			if (other.idSistema != null){
				return false;
			}
		} else if (!idSistema.equals(other.idSistema)){
			return false;
		}
		return true;
	}
	
	
}